package com.qsw.httpnetlib.net.core.callback;

import java.io.InputStream;

/**
 * 网络请求回调
 */

public interface OnNetCallback {

    /**
     * 一般数据请求成功
     *
     * @param data 请求到的数据
     */
    void onSuccess(String data);


    /**
     * 下载文件请求成功，使用完需要调用关闭流
     *
     * @param is     请求到的输入流，使用完需要调用关闭
     * @param length 输入流的文件总长度
     */
    void onSuccess(InputStream is, int length);

    /**
     * 使用网络API接口请求方式时，虽然已经请求成功但是由
     * 于{@code msg}的原因无法正常返回数据。
     *
     * @param code 错误码
     * @param msg  返回信息
     */
    void onFailure(int code, String msg);

    /**
     * 请求数据失败，指在请求网络API接口请求方式时，出现无法联网、
     * 缺少权限，内存泄露等原因导致无法连接到请求数据源。
     *
     * @param e 具体错误
     */
    void onError(Exception e);

    /**
     * 当请求数据结束时，无论请求结果是成功，失败或是抛出异常都会执行此方法给用户做处理，通常做网络
     * 请求时可以在此处隐藏“正在加载”的等待控件
     */
    void onComplete();

}
